From: Jonathan Matthew Date: Sat, 30 Oct 2010 06:29:21 +0000 (+1000) Subject: MessageTray: only create icon buttons if specifically requested X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~9570 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=9585c823d51af30a536c7b304cbc12b24259635b;p=gnome-shell.git MessageTray: only create icon buttons if specifically requested Action names sometimes unintentionally overlap with icon names, so we should only create icon buttons if the message tray source requests it. For the notification daemon, this is done by setting the 'action-icons' hint on the notification. The previous notification server capability used to advertise this feature, "x-gnome-icon-buttons", has been removed in favour of the new capability described in the notification spec, "action-icons". https://bugzilla.gnome.org/show_bug.cgi?id=624584 --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 7ab1b76d2..d11051943 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -102,6 +102,7 @@ Notification.prototype = { this.source = source; this.urgent = false; this.expanded = false; + this._useActionIcons = false; this._customContent = false; this._bannerBodyText = null; this._titleFitsInBannerMode = true; @@ -346,7 +347,7 @@ Notification.prototype = { let button = new St.Button(); - if (Gtk.IconTheme.get_default().has_icon(id)) { + if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(id)) { button.add_style_class_name('notification-icon-button'); button.child = St.TextureCache.get_default().load_icon_name(id, St.IconType.SYMBOLIC, BUTTON_ICON_SIZE); } else { @@ -363,6 +364,10 @@ Notification.prototype = { this.urgent = urgent; }, + setUseActionIcons: function(useIcons) { + this._useActionIcons = useIcons; + }, + _styleChanged: function() { this._spacing = this.actor.get_theme_node().get_length('spacing-columns'); }, diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 88fbc00e0..5bebb170d 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -294,6 +294,7 @@ NotificationDaemon.prototype = { } if (actions.length) { + notification.setUseActionIcons(hints['action-icons'] == true); for (let i = 0; i < actions.length - 1; i += 2) notification.addButton(actions[i], actions[i + 1]); } @@ -317,6 +318,7 @@ NotificationDaemon.prototype = { GetCapabilities: function() { return [ 'actions', + 'action-icons', 'body', // 'body-hyperlinks', // 'body-images', @@ -325,7 +327,6 @@ NotificationDaemon.prototype = { 'icon-static', 'persistence', // 'sound', - 'x-gnome-icon-buttons' ]; },